/*
 * (C) Copyright 2023 orchy
 * This file is licensed under the BSD-3-Clause license.
 * <https://spdx.org/licenses/BSD-3-Clause.html>
 */
#ifndef _FENV_H
#define _FENV_H

// # 7.6.0
// ## 7.6.0.3
typedef int fenv_t;

// ## 7.6.0.4
typedef int fexcept_t;

// ## 7.6.0.6
#define FE_ALL_EXCEPT 0

// ## 7.6.0.8
#define FE_DFL_ENV ((const fenv_t*)0)

// # 7.6.2
// ## 7.6.2.1
int feclearexcept(int excepts);

// ## 7.6.2.2
int fegetexceptflag(fexcept_t* flagp, int excepts);

// ## 7.6.2.3
int feraiseexcept(int excepts);

// ## 7.6.2.4
int fesetexceptflag(const fexcept_t* flagp, int excepts);

// ## 7.6.2.5
int fetestexcept(int excepts);

// # 7.6.3
// ## 7.6.3.1
int fegetround(void);

// ## 7.6.3.2
int fesetround(int round);

// # 7.6.4
// ## 7.6.4.1
int fegetenv(fenv_t* envp);

// ## 7.6.4.2
int feholdexcept(fenv_t* envp);

// ## 7.6.4.3
int fesetenv(const fenv_t* envp);

// ## 7.6.4.4
int feupdateenv(const fenv_t* envp);

#endif
